]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
screenshot-ui: Add the control panel
authorIvan Molodetskikh <yalterz@gmail.com>
Mon, 16 Aug 2021 07:25:52 +0000 (10:25 +0300)
committerMarge Bot <marge-bot@gnome.org>
Thu, 27 Jan 2022 22:25:42 +0000 (22:25 +0000)
The (currently empty) panel resides on the primary monitor.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1954>

data/theme/gnome-shell-sass/_widgets.scss
data/theme/gnome-shell-sass/widgets/_screenshot.scss [new file with mode: 0644]
data/theme/meson.build
js/ui/screenshot.js

index a8d0aa9f4d3f6e4172b1441b40a57bf550a15210..6896213e8fdc748a475fa662660e0c66c647388c 100644 (file)
@@ -29,6 +29,7 @@
 @import 'widgets/osd';
 @import 'widgets/switcher-popup';
 @import 'widgets/workspace-switcher';
+@import 'widgets/screenshot';
 // Panel
 @import 'widgets/panel';
 @import 'widgets/corner-ripple';
diff --git a/data/theme/gnome-shell-sass/widgets/_screenshot.scss b/data/theme/gnome-shell-sass/widgets/_screenshot.scss
new file mode 100644 (file)
index 0000000..d28aacb
--- /dev/null
@@ -0,0 +1,9 @@
+// Screenshot UI
+.screenshot-ui-panel {
+  background-color: $osd_bg_color;
+  border-radius: 12px + 21px;
+  padding: 18px;
+  padding-bottom: 18px - 6px;
+  margin-bottom: $base_margin * 8;
+  spacing: $base_padding * 2;
+}
index 87112c358ddddc4441c2e99c2a94e83ceddb48f2..846732550627b0a4de920764c7cae9c6ce12e807 100644 (file)
@@ -30,6 +30,7 @@ theme_sources = files([
   'gnome-shell-sass/widgets/_panel.scss',
   'gnome-shell-sass/widgets/_popovers.scss',
   'gnome-shell-sass/widgets/_screen-shield.scss',
+  'gnome-shell-sass/widgets/_screenshot.scss',
   'gnome-shell-sass/widgets/_scrollbars.scss',
   'gnome-shell-sass/widgets/_search-entry.scss',
   'gnome-shell-sass/widgets/_search-results.scss',
index abc4a325439402a9026036cfe13e99336fbb16b3..6850e66cc5a5b88fbd269e6ce377ebaedbc406ac 100644 (file)
@@ -4,6 +4,7 @@
 const { Clutter, Gio, GObject, GLib, Meta, Shell, St } = imports.gi;
 
 const GrabHelper = imports.ui.grabHelper;
+const Layout = imports.ui.layout;
 const Lightbox = imports.ui.lightbox;
 const Main = imports.ui.main;
 
@@ -39,6 +40,19 @@ class ScreenshotUI extends St.Widget {
             actionMode: Shell.ActionMode.POPUP,
         });
 
+        this._primaryMonitorBin = new St.Widget({ layout_manager: new Clutter.BinLayout() });
+        this._primaryMonitorBin.add_constraint(
+            new Layout.MonitorConstraint({ 'primary': true }));
+        this.add_child(this._primaryMonitorBin);
+
+        this._panel = new St.BoxLayout({
+            style_class: 'screenshot-ui-panel',
+            y_align: Clutter.ActorAlign.END,
+            y_expand: true,
+            vertical: true,
+        });
+        this._primaryMonitorBin.add_child(this._panel);
+
         Main.layoutManager.connect('monitors-changed', () => {
             // Nope, not dealing with monitor changes.
             this.close(true);